package com.lsl.decorator.decorator2.condiment;

import com.lsl.decorator.decorator2.burger.Hamburger;


/**
 * 动态的给对象添加职责
 * 1.使用装饰者模式可以动态的扩展功能 和继承相比更灵活
 * 2.使用继承来实现功能的拓展,如果这些需要拓展的功能的种类很多,那么势必生成很多子类,增加系统的复杂性
 * 3.装饰模式可以把类的核心职责与装饰功能区分开  可以去除重复的装饰逻辑
 */

/**
 * 配料的基类（装饰者，用来对汉堡进行多层装饰，每层装饰增加一些配料，相当于上面Decorator）
 *
 * @author liusl104
 */
abstract class Condiment extends Hamburger {
    /**
     * 获取具体汉堡
     *
     * @return
     */
    @Override
    public abstract String getName();

}